#ifndef __BASECPLU_H__
#define __BASECPLU_H__   1

/************************************************************************/
#include <iostream>
#include <vector>
#include <list>
#include <stack>
#include <string>
#include <algorithm>
#include <cassert>

template<class CONTAINER, class OP> inline void DO_FOR_ALL(CONTAINER &C, OP& op)
{
  std::for_each(C.begin(), C.end(), op);
}

template<class CONTAINER, class OP> inline void DO_FOR_ALL(CONTAINER *C_PTR, OP& op)
{
  if ( C_PTR )
  {
    std::for_each(C_PTR->begin(), C_PTR->end(), op);
  }
}

template<class T> inline int PTR_CHECK_DELETE(T *&ptr)
{
  if ( ptr )
  {
    delete ptr; 
    ptr = 0;
    return true;
  }
  return false;
}

/************************************************************************/
#endif

